package gui.tables;

import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.TableCellRenderer;

import start.Start;

/**
 * Spezieller CellRenderer zur Zuordnung und Darstellung
 * einer Grafik fuer die Rezeptbewertung.
 * @author Dennis Wittkoetter
 *
 */
public class RatingCellRenderer extends JLabel implements TableCellRenderer { 
	/**ID zur Serialisierung*/
	private static final long serialVersionUID = 1L;
	/**zu rendernde Zelle*/
	protected RatingCellRenderer rendererComponent;  
	
	/**
	 * Konstruiert den CellRenderer
	 */
	public RatingCellRenderer() {  
		super();
		rendererComponent = this; 
	}

	/**
	 * Spezielle Manipulation der aktuelle gerenderten Tabelle
	 * @return 	Die manipulierte Komponente
	 */
	@Override
	public Component getTableCellRendererComponent(JTable table, Object value,
		boolean isSelected, boolean hasFocus, int row, int column) {
		setHorizontalAlignment(SwingConstants.CENTER);
		
		//Umwandlung eines bestimmten Zahlenwerts in eine festgelegte Grafik
		if (value.toString().equalsIgnoreCase("1")) {
			rendererComponent.setIcon(new ImageIcon(Start.getImgs().getTableBewertung1()));
			return rendererComponent;
		}
		
		else if (value.toString().equalsIgnoreCase("2")) {
			rendererComponent.setIcon(new ImageIcon(Start.getImgs().getTableBewertung2()));
			return rendererComponent;
		}
		
		else if (value.toString().equalsIgnoreCase("3")) {
			rendererComponent.setIcon(new ImageIcon(Start.getImgs().getTableBewertung3()));
			return rendererComponent;
		}
		
		else if (value.toString().equalsIgnoreCase("4")) {
			rendererComponent.setIcon(new ImageIcon(Start.getImgs().getTableBewertung4()));
			return rendererComponent;
		}
		else if (value.toString().equalsIgnoreCase("5")) {
			rendererComponent.setIcon(new ImageIcon(Start.getImgs().getTableBewertung5()));
			return rendererComponent;
		}
		else {
			rendererComponent.setIcon(new ImageIcon(Start.getImgs().getTableBewertung0()));
			return rendererComponent;
		}
	}
}
